home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / python-support / python2.6 / gdata / oauth / rsa.pyc (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  4.5 KB  |  64 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. '''
  5. requires tlslite - http://trevp.net/tlslite/
  6.  
  7. '''
  8. import binascii
  9. from gdata.tlslite.utils import keyfactory
  10. from gdata.tlslite.utils import cryptomath
  11. import gdata.oauth as oauth
  12.  
  13. class OAuthSignatureMethod_RSA_SHA1(oauth.OAuthSignatureMethod):
  14.     
  15.     def get_name(self):
  16.         return 'RSA-SHA1'
  17.  
  18.     
  19.     def _fetch_public_cert(self, oauth_request):
  20.         raise NotImplementedError
  21.  
  22.     
  23.     def _fetch_private_cert(self, oauth_request):
  24.         raise NotImplementedError
  25.  
  26.     
  27.     def build_signature_base_string(self, oauth_request, consumer, token):
  28.         sig = (oauth.escape(oauth_request.get_normalized_http_method()), oauth.escape(oauth_request.get_normalized_http_url()), oauth.escape(oauth_request.get_normalized_parameters()))
  29.         key = ''
  30.         raw = '&'.join(sig)
  31.         return (key, raw)
  32.  
  33.     
  34.     def build_signature(self, oauth_request, consumer, token):
  35.         (key, base_string) = self.build_signature_base_string(oauth_request, consumer, token)
  36.         cert = self._fetch_private_cert(oauth_request)
  37.         privatekey = keyfactory.parsePrivateKey(cert)
  38.         signed = privatekey.hashAndSign(base_string)
  39.         return binascii.b2a_base64(signed)[:-1]
  40.  
  41.     
  42.     def check_signature(self, oauth_request, consumer, token, signature):
  43.         decoded_sig = base64.b64decode(signature)
  44.         (key, base_string) = self.build_signature_base_string(oauth_request, consumer, token)
  45.         cert = self._fetch_public_cert(oauth_request)
  46.         publickey = keyfactory.parsePEMKey(cert, public = True)
  47.         ok = publickey.hashAndVerify(decoded_sig, base_string)
  48.         return ok
  49.  
  50.  
  51.  
  52. class TestOAuthSignatureMethod_RSA_SHA1(OAuthSignatureMethod_RSA_SHA1):
  53.     
  54.     def _fetch_public_cert(self, oauth_request):
  55.         cert = '\n-----BEGIN CERTIFICATE-----\nMIIBpjCCAQ+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAZMRcwFQYDVQQDDA5UZXN0\nIFByaW5jaXBhbDAeFw03MDAxMDEwODAwMDBaFw0zODEyMzEwODAwMDBaMBkxFzAV\nBgNVBAMMDlRlc3QgUHJpbmNpcGFsMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQC0YjCwIfYoprq/FQO6lb3asXrxLlJFuCvtinTF5p0GxvQGu5O3gYytUvtC2JlY\nzypSRjVxwxrsuRcP3e641SdASwfrmzyvIgP08N4S0IFzEURkV1wp/IpH7kH41Etb\nmUmrXSwfNZsnQRE5SYSOhh+LcK2wyQkdgcMv11l4KoBkcwIDAQABMA0GCSqGSIb3\nDQEBBQUAA4GBAGZLPEuJ5SiJ2ryq+CmEGOXfvlTtEL2nuGtr9PewxkgnOjZpUy+d\n4TvuXJbNQc8f4AMWL/tO9w0Fk80rWKp9ea8/df4qMq5qlFWlx6yOLQxumNOmECKb\nWpkUQDIDJEoFUzKMVuJf4KO/FJ345+BNLGgbJ6WujreoM1X/gYfdnJ/J\n-----END CERTIFICATE-----\n'
  56.         return cert
  57.  
  58.     
  59.     def _fetch_private_cert(self, oauth_request):
  60.         cert = '\n-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALRiMLAh9iimur8V\nA7qVvdqxevEuUkW4K+2KdMXmnQbG9Aa7k7eBjK1S+0LYmVjPKlJGNXHDGuy5Fw/d\n7rjVJ0BLB+ubPK8iA/Tw3hLQgXMRRGRXXCn8ikfuQfjUS1uZSatdLB81mydBETlJ\nhI6GH4twrbDJCR2Bwy/XWXgqgGRzAgMBAAECgYBYWVtleUzavkbrPjy0T5FMou8H\nX9u2AC2ry8vD/l7cqedtwMPp9k7TubgNFo+NGvKsl2ynyprOZR1xjQ7WgrgVB+mm\nuScOM/5HVceFuGRDhYTCObE+y1kxRloNYXnx3ei1zbeYLPCHdhxRYW7T0qcynNmw\nrn05/KO2RLjgQNalsQJBANeA3Q4Nugqy4QBUCEC09SqylT2K9FrrItqL2QKc9v0Z\nzO2uwllCbg0dwpVuYPYXYvikNHHg+aCWF+VXsb9rpPsCQQDWR9TT4ORdzoj+Nccn\nqkMsDmzt0EfNaAOwHOmVJ2RVBspPcxt5iN4HI7HNeG6U5YsFBb+/GZbgfBT3kpNG\nWPTpAkBI+gFhjfJvRw38n3g/+UeAkwMI2TJQS4n8+hid0uus3/zOjDySH3XHCUno\ncn1xOJAyZODBo47E+67R4jV1/gzbAkEAklJaspRPXP877NssM5nAZMU0/O/NGCZ+\n3jPgDUno6WbJn5cqm8MqWhW1xGkImgRk+fkDBquiq4gPiT898jusgQJAd5Zrr6Q8\nAO/0isr/3aa6O6NLQxISLKcPDk2NOccAfS/xOtfOz4sJYM3+Bs4Io9+dZGSDCA54\nLw03eHTNQghS0A==\n-----END PRIVATE KEY-----\n'
  61.         return cert
  62.  
  63.  
  64.